/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package data;

import business.*;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.sql.SQLException;
import java.sql.ResultSet;

/**
 *
 * @author Mário
 */
public class PedidosData extends InterfaceBD{

    public PedidosData() {
        super();
    }

    public void marcarPedido_efectuada(int cod) throws SQLException {
        String query = "Delete from Pedidos where cos_pedido = "+cod;
        System.out.println(query);
        res = st.executeUpdate(query);

    }

    public void addPedido(int codCliente,String desc,String zona,GregorianCalendar data) throws Exception{
        String queryaux = "Select localidadeu from Utilizador where cod_u="+codCliente;
        rs = st.executeQuery(queryaux);
        String result=null;
        while(rs.next()){
            result = rs.getString(1);
        }

        int codp = getnextCodPed();
        int dia =  data.get(GregorianCalendar.DAY_OF_MONTH)+1;
        int mes = data.get(GregorianCalendar.MONTH)+1;
        int ano = data.get(GregorianCalendar.YEAR);
        String dataS = ano+"-"+mes+"-"+dia;
        String query = "Insert into Pedidos VALUES("+codp+","+codCliente+",'"+desc+"','"+dataS+"','"+result+"')";
        System.out.println(query);
        res = st.executeUpdate(query);

    }

    public ArrayList<Pedido> getListaPedidosUtil(int cod_utilizador) throws Exception {
        ArrayList<Pedido> resultado = new ArrayList<Pedido>();
        String query = "Select * from Pedidos where cod_utp = "+cod_utilizador;
        System.out.println(query);
        rs = st.executeQuery(query);

        boolean aux = false;
        while(rs.next()){
            aux = true;
            GregorianCalendar data = new GregorianCalendar();
            data.setTime(rs.getDate(4));
            resultado.add(new Pedido(rs.getInt(1),rs.getInt(2),rs.getString(3),rs.getString(5),data));
        }

        if(aux == false){

            throw new Exception("BaseDados sem Pedidos");
        }else{
            return resultado;

        }
    }



    public ArrayList<Pedido> getListaPedidos() throws Exception {
        ArrayList<Pedido> resultado = new ArrayList<Pedido>();
        String query = "Select * from Pedidos";
        System.out.println(query);
        rs = st.executeQuery(query);

        boolean aux = false;
        while(rs.next()){
            aux = true;
            GregorianCalendar data = new GregorianCalendar();
            data.setTime(rs.getDate(4));
            resultado.add(new Pedido(rs.getInt(1),rs.getInt(2),rs.getString(3),rs.getString(5),data));
            System.out.println("LOL");
        }

        if(aux == false){

            throw new Exception("BaseDados sem Pedidos");
        }else{
            return resultado;

        }
    }
    public int getnextCodPed() throws SQLException{

        ResultSet rs;
        int num = 0;

        try {
            rs = st.executeQuery("SELECT MAX(cod_pedido) FROM Pedidos");
            rs.next();
            num = rs.getInt(1);
        }
        catch (SQLException e) {

            //
        }
        return(num+1);
    }


}
